package com.miao;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

public class CodeGenerator {
    public static void main(String[] args) {
        FastAutoGenerator.create(
                        "jdbc:mysql://localhost:3306/miao-vedio-server",
                        "root",
                        "123456")
                .globalConfig(builder -> {
                    builder.author("miao") // 设置作者
//                            .enableSwagger() // 开启 swagger 模式
                            .outputDir("mp-generator/src/main/java"); // 指定输出目录
                })
                .packageConfig(builder ->
                        builder.parent("com.miao") // 设置父包名
                                .entity("entity")  // 设置 Entity 包名
                                .mapper("mapper")
                                .service("service")// 设置 Service 包名
                                .serviceImpl("service.impl") // 设置 Service Impl 包名
                                .xml("mappers") // 设置 Mapper XML 包名
                                .controller("controller") // 设置 Controller 包名
                )
                .strategyConfig(builder ->
                        builder.addInclude("t_user",  "t_user_info")            // 设置需要生成代码的表名
                                .addTablePrefix("t_", "c_")     // 设置过滤表前缀Demo
                                .entityBuilder()
                                .enableLombok() // 启用 Lombok
                                .idType(IdType.ASSIGN_ID)   //雪花算法，比较适合分布式系统
                                .enableTableFieldAnnotation() // 启用字段注解
                                .controllerBuilder()
                                .enableRestStyle() // 启用 REST 风格

                )
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板，默认的是Velocity引擎模板
                .execute();
    }
}
